import { ImportsMap } from 'unplugin-auto-import/types'
import {
  Package_Name,
  // =======
  // * API *
  // =======
  // ----------
  // * common *
  // ----------
  // animate
  AnimateClearTimeConst_Name,
  AnimateExecTimeConst_Name,
  // direction
  ScrollDirectionConst_Name,
  // element
  ElStatusConst_Name,
  ElVisibilityStatusConst_Name,
  // ---------
  // * utils *
  // ---------
  // el
  ElUtil_Name,
  // expose
  ExposeUtil_Name,
  // icon
  IconifyUtil_Name,
  IconifyVueUtil_Name,
  IconUtil_Name,
  // plugins
  PluginUtil_Name,
  // service
  ServiceUtil_Name,
  // status
  StatusUtil_Name,
  // --------
  // * vite *
  // --------
  ViteUtil_Name,
  // --------------
  // * components *
  // --------------
  ContactStrategyConst_Name,
  ElVisibilityAnimateCssExecTimeMap_Name,
  IconTypeConst_Name,
  LogoCollapseStrategyConst_Name,
  WatchSizeStrategyConst_Name,
  // =======
  // * 类型 *
  // =======
  // ----------
  // * common *
  // ----------
  // animate
  AnimateClearTimeConstType_Name,
  AnimateExecTimeConstType_Name,
  // direction
  ScrollDirectionConstType_Name,
  // element
  ElStatusConstType_Name,
  ElVisibilityStatusConstType_Name,
  // icon
  CommonIconPropsType_Name,
  IconType_Name,
  IconsType_Name,
  // ---------
  // * utils *
  // ---------
  // el
  GetParentChildrenWidthType_Name,
  IsContactNextType_Name,
  IsContactPreviousType_Name,
  // expose
  GenExposeProxyType_Name,
  // icon
  GenIconsByIconifyJSONType_Name,
  GenIconsBySetIconsType_Name,
  GenSetIconsAllType_Name,
  GenIconifySetIconsUnByCategoriesType_Name,
  GetIconifyIconsCSSType_Name,
  GetIconifyIconCSSType_Name,
  GetIconifyIconsDataType_Name,
  GetIconifyIconDataType_Name,
  GetIconifyIconsDataParseType_Name,
  GetIconifyIconDataParseType_Name,
  GetIconifyIconSetsType_Name,
  GetIconifyIconSetType_Name,
  GetIconifyIconSvgType_Name,
  GetIconifySetIconsType_Name,
  IconifySetIcons_Name,
  GetIconifySetIconsOptions_Name,
  GetSetIconsFromIconifyJSON_Name,
  GetIconifySetIconsUncategorizedFromMetaDataType_Name,
  LoadIconsType_Name,
  SearchIconifyIconsType_Name,
  SearchIconifyIconsOptionsType_Name,
  SearchIconifyIconsResult_Name,
  IconifyIconExists_Name,
  getIconifyIcon_Name,
  addIconifyIcon_Name,
  addIconifyCollection_Name,
  loadIconifyIcon_Name,
  loadIconifyIcons_Name,
  GenIconType_Name,
  // plugins
  GenComponentGlobalRegisterType_Name,
  GenComponentsLibGlobalRegisterType_Name,
  // service
  GenSubmitFormHandlerType_Name,
  // status
  GenStatusType_Name,
  // --------
  // * vite *
  // --------
  IsSSRType_Name,
  // --------------
  // * components *
  // --------------
  // SAdjustableContainer
  AdjustableContainerPropsType_Name,
  // SAnimateCss
  AnimateCssConstType_Name,
  AnimateCssNameConstType_Name,
  AnimateCssDelayConstType_Name,
  AnimateCssSpeedConstType_Name,
  AnimateCssRepeatConstType_Name,
  AnimateCssPropsType_Name,
  // SCard1
  Card1PropsType_Name,
  // SContact
  ContactStrategyConstType_Name,
  ContactPropsType_Name,
  // SGridAutoFillCols
  GridAutoFillColsPropsType_Name,
  // SGridItem
  GridItemPropsType_Name,
  // SGridResponsive
  GridResponsivePropsType_Name,
  // SIcon
  IconTypeConstType_Name,
  IconPropsType_Name,
  IconFontClassPropsType_Name,
  IconIconifyPropsType_Name,
  IconIconifyOfflinePropsType_Name,
  IconLinkPropsType_Name,
  IconSymbolPropsType_Name,
  IconTextPropsType_Name,
  IconUnicodePropsType_Name,
  // SLogo
  LogoCollapseStrategyConstType_Name,
  LogoProps_Name,
  // SMask
  MaskPropsType_Name,
  // STextEllipsis
  TextEllipsisPropsType_Name,
  // SVisibility
  VisibilityPropsType_Name,
  // SVisibilityDetail
  VisibilityDetailHandlerType_Name,
  VisibilityDetailHandlerLimitExcludeType_Name,
  VisibilityDetailPropsType_Name,
  // SWatchSize
  WatchSizeStrategyConstType_Name,
  SizeUpdateHandlerType_Name,
  WatchSizePropsType_Name
} from '@xtail/vue3'
import { AutoImportUtil } from '@xtail/unplugin'

export const XTailVue3AutoImports: () => ImportsMap = () =>
  AutoImportUtil.genAutoImports(Package_Name, [
    // ----------
    // * common *
    // ----------
    // animate
    AnimateClearTimeConst_Name,
    AnimateExecTimeConst_Name,
    // direction
    ScrollDirectionConst_Name,
    // element
    ElStatusConst_Name,
    ElVisibilityStatusConst_Name,
    // ---------
    // * utils *
    // ---------
    // el
    ElUtil_Name,
    // expose
    ExposeUtil_Name,
    // icon
    IconifyUtil_Name,
    IconifyVueUtil_Name,
    IconUtil_Name,
    // plugins
    PluginUtil_Name,
    // service
    ServiceUtil_Name,
    // status
    StatusUtil_Name,
    // --------
    // * vite *
    // --------
    ViteUtil_Name,
    // --------------
    // * components *
    // --------------
    ContactStrategyConst_Name,
    ElVisibilityAnimateCssExecTimeMap_Name,
    IconTypeConst_Name,
    LogoCollapseStrategyConst_Name,
    WatchSizeStrategyConst_Name
  ])

export type XTailVue3AutoImportsType = typeof XTailVue3AutoImports

export const XTailVue3TypeAutoImports = () =>
  AutoImportUtil.genTypeAutoImports(Package_Name, [
    // ----------
    // * common *
    // ----------
    // animate
    AnimateClearTimeConstType_Name,
    AnimateExecTimeConstType_Name,
    // direction
    ScrollDirectionConstType_Name,
    // element
    ElStatusConstType_Name,
    ElVisibilityStatusConstType_Name,
    // icon
    CommonIconPropsType_Name,
    IconType_Name,
    IconsType_Name,
    // ---------
    // * utils *
    // ---------
    // el
    GetParentChildrenWidthType_Name,
    IsContactNextType_Name,
    IsContactPreviousType_Name,
    // expose
    GenExposeProxyType_Name,
    // icon
    GenIconsByIconifyJSONType_Name,
    GenIconsBySetIconsType_Name,
    GenSetIconsAllType_Name,
    GenIconifySetIconsUnByCategoriesType_Name,
    GetIconifyIconsCSSType_Name,
    GetIconifyIconCSSType_Name,
    GetIconifyIconsDataType_Name,
    GetIconifyIconDataType_Name,
    GetIconifyIconsDataParseType_Name,
    GetIconifyIconDataParseType_Name,
    GetIconifyIconSetsType_Name,
    GetIconifyIconSetType_Name,
    GetIconifyIconSvgType_Name,
    GetIconifySetIconsType_Name,
    IconifySetIcons_Name,
    GetIconifySetIconsOptions_Name,
    GetSetIconsFromIconifyJSON_Name,
    GetIconifySetIconsUncategorizedFromMetaDataType_Name,
    LoadIconsType_Name,
    SearchIconifyIconsType_Name,
    SearchIconifyIconsOptionsType_Name,
    SearchIconifyIconsResult_Name,
    IconifyIconExists_Name,
    getIconifyIcon_Name,
    addIconifyIcon_Name,
    addIconifyCollection_Name,
    loadIconifyIcon_Name,
    loadIconifyIcons_Name,
    GenIconType_Name,
    // plugins
    GenComponentGlobalRegisterType_Name,
    GenComponentsLibGlobalRegisterType_Name,
    // service
    GenSubmitFormHandlerType_Name,
    // status
    GenStatusType_Name,
    // --------
    // * vite *
    // --------
    IsSSRType_Name,
    // --------------
    // * components *
    // --------------
    // SAdjustableContainer
    AdjustableContainerPropsType_Name,
    // SAnimateCss
    AnimateCssConstType_Name,
    AnimateCssNameConstType_Name,
    AnimateCssDelayConstType_Name,
    AnimateCssSpeedConstType_Name,
    AnimateCssRepeatConstType_Name,
    AnimateCssPropsType_Name,
    // SCard1
    Card1PropsType_Name,
    // SContact
    ContactStrategyConstType_Name,
    ContactPropsType_Name,
    // SGridAutoFillCols
    GridAutoFillColsPropsType_Name,
    // SGridItem
    GridItemPropsType_Name,
    // SGridResponsive
    GridResponsivePropsType_Name,
    // SIcon
    IconTypeConstType_Name,
    IconPropsType_Name,
    IconFontClassPropsType_Name,
    IconIconifyPropsType_Name,
    IconIconifyOfflinePropsType_Name,
    IconLinkPropsType_Name,
    IconSymbolPropsType_Name,
    IconTextPropsType_Name,
    IconUnicodePropsType_Name,
    // SLogo
    LogoCollapseStrategyConstType_Name,
    LogoProps_Name,
    // SMask
    MaskPropsType_Name,
    // STextEllipsis
    TextEllipsisPropsType_Name,
    // SVisibility
    VisibilityPropsType_Name,
    // SVisibilityDetail
    VisibilityDetailHandlerType_Name,
    VisibilityDetailHandlerLimitExcludeType_Name,
    VisibilityDetailPropsType_Name,
    // SWatchSize
    WatchSizeStrategyConstType_Name,
    SizeUpdateHandlerType_Name,
    WatchSizePropsType_Name
  ])

export type XTailVue3TypeAutoImportsType = typeof XTailVue3TypeAutoImports
